In the field of this invention it is known that for optimum performance of message throughput when processing messages in a computer system, there is a requirement to take advantage (if possible) of parallel processing facilities of the system on which the processing takes place, for example employing multiple parallel threads in a process where each thread processes a separate message.
It is known that an input node of a computer program or data processing system which is receiving messages may be configured to process messages containing the same userid in sequence. In this case messages containing different userids may overtake each other, but messages with the same userid will not. Such message processing works acceptably where the message is processed by a single message “broker” (which provides routing/formatting services) and is then sent to a client application.
However, in the situation where the message is passed from one broker to another in a broker network before it reaches a client, this approach is not suitable because all messages arriving at an input node of a second broker have the same userid (the userid of the previous broker to process a message), and the same is true at subsequent brokers, so the userid is not an adequate parameter for preserving message ordering.
A need therefore exists to preserve message order when parallel processing messages wherein the abovementioned disadvantage may be alleviated.